package com.gbiac.modules.monitor.model.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * AI告警日志参数信息
 */
@NoArgsConstructor
@Data
public class AiWarnMessageForm {

    /**
     * 告警唯一
     */
    @JsonProperty("warning_code")
    private String warning_code;
    /**
     * 任务编号
     */
    @JsonProperty("task_code")
    private String task_code;
    /**
     * 任务名称
     */
    @JsonProperty("task_name")
    private String task_name;
    /**
     * 主机唯一标志符
     */
    @JsonProperty("server_id")
    private Integer server_id;
    /**
     * 视频流编号
     */
    @JsonProperty("camera_code")
    private String camera_code;
    /**
     * 视频流名称，作为对应摄像头告警的联调标准
     *
     */
    @JsonProperty("camera_name")
    private String camera_name;
    /**
     * 视频流位置(在此可作为工位标志)
     */
    @JsonProperty("position")
    private String position;
    /**
     * 检测帧图片路径（带目标框）
     */
    @JsonProperty("detect_frame_url")
    private String detect_frame_url;

    /**
     * 算法名
     */
    @JsonProperty("ability_name")
    private String ability_name;
    /**
     * 算法插件标志英文，用于区分是何种行为告警
     */
    @JsonProperty("warning_type")
    private String warning_type;
    /**
     * 算法插件标志中文
     */
    @JsonProperty("warning_plugin")
    private String warning_plugin;
    /**
     * 告警内容
     */
    @JsonProperty("warning_info")
    private String warning_info;
    /**
     * 告警数据内容
     */
    @JsonProperty("warning_value")
    private WarningValueDTO warning_value;
    /**
     * 告警时间（格式为Yyyy-MM-dd HH-mm-ss）
     */
    @JsonProperty("created_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date created_time;
    /**
     * 告警信息来源 "is_one"信息由中心侧上报 "is_edge"信息由边缘侧上报
     */
    @JsonProperty("service_type")
    private String service_type;

    /**
     * 检测 JPEG 图片 BASE64 的字的字符串
     */
    @JsonProperty("detect_frame")
    private Object detect_frame;
    /**
     * 原始 JPEG 图片 BASE64 的字符串，无时为 None
     */
    @JsonProperty("origin_frame")
    private Object origin_frame;

    @NoArgsConstructor
    @Data
    public static class WarningValueDTO {
        /**
         * 告警数据内容
         */
        @JsonProperty("value")
        private String value;
    }
}
